﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace операции_данные
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            byte byPolZ;
            int intPolZ;
            double doPolZ;

            switch (comboBox1.SelectedItem.ToString())
            {
                case "+":
                    byPolZ = (byte)(byte.Parse(opX.Text) + byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) + int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)(double.Parse(opX.Text) + double.Parse(opY.Text));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "-":
                    byPolZ = (byte)(byte.Parse(opX.Text) - byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) - int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)(double.Parse(opX.Text) - double.Parse(opY.Text));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "*":
                    byPolZ = (byte)(byte.Parse(opX.Text) * byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) * int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)(double.Parse(opX.Text) * double.Parse(opY.Text));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "/":
                    byPolZ = (byte)(byte.Parse(opX.Text) / byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) / int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)(double.Parse(opX.Text) / double.Parse(opY.Text));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "%":
                    byPolZ = (byte)(byte.Parse(opX.Text) % byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) % int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)(double.Parse(opX.Text) % double.Parse(opY.Text));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "Sin X":
                    byPolZ = (byte)Math.Sin((byte.Parse(opX.Text)));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)Math.Sin((int.Parse(opX.Text)));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)Math.Sin((double.Parse(opX.Text)));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "Cos X":
                    byPolZ = (byte)Math.Cos((byte.Parse(opX.Text)));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)Math.Cos((int.Parse(opX.Text)));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)Math.Cos((double.Parse(opX.Text)));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "Tg X":
                    byPolZ = (byte)Math.Tan((byte.Parse(opX.Text)));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)Math.Tan((int.Parse(opX.Text)));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)Math.Tan((double.Parse(opX.Text)));
                    doZ.Text = doPolZ.ToString();
                    break;
                case "Log 10 X":
                    byPolZ = (byte)Math.Log10((byte.Parse(opX.Text)));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)Math.Log10((int.Parse(opX.Text)));
                    inZ.Text = intPolZ.ToString();
                    doPolZ = (double)Math.Log10((double.Parse(opX.Text)));
                    doZ.Text = doPolZ.ToString();
                    break;





                case "&":
                    byPolZ = (byte)(byte.Parse(opX.Text) & byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) & int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doZ.Text = "NO puedo";
                    break;
                case "|":
                    byPolZ = (byte)(byte.Parse(opX.Text) | byte.Parse(opY.Text));
                    byZ.Text = byPolZ.ToString();
                    intPolZ = (int)(int.Parse(opX.Text) | int.Parse(opY.Text));
                    inZ.Text = intPolZ.ToString();
                    doZ.Text = "NO puedo";
                    break;
                case "MAX": 
                    byZ.Text = byte.MaxValue.ToString();
                    inZ.Text = int.MaxValue.ToString();
                    doZ.Text = double.MaxValue.ToString();
                    break;
                case "MIN":
                    byZ.Text = byte.MinValue.ToString();
                    inZ.Text = int.MinValue.ToString();
                    doZ.Text = double.MinValue.ToString(); 
                    
                    break;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("+");
            comboBox1.Items.Add("-");
            comboBox1.Items.Add("*");
            comboBox1.Items.Add("/");
            comboBox1.Items.Add("%");
            comboBox1.Items.Add("Sin X");
            comboBox1.Items.Add("Cos X");
            comboBox1.Items.Add("Tg X");
            comboBox1.Items.Add("Log 10 X");
            comboBox1.Items.Add("&");
            comboBox1.Items.Add("|");
            comboBox1.Items.Add("!");
            comboBox1.Items.Add("^");
            comboBox1.Items.Add("MAX");
            comboBox1.Items.Add("MIN");
        }
    }
}
